/**
 * gwt-validator 
 *
 * Copyright (C) 2006  Nikolaus Rumm, Christian Simonutti
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */
package gwt.validator.client.message;

import com.google.gwt.i18n.client.Messages;

/**
 * The <code>IssuesMessages</code> interface defines the contract between the
 * validation framework and GWT to generate a runtime delegator for accessing
 * the error message resources.
 * 
 * @author <a href="mailto:nikolaus.rumm@gmail.com">Nikolaus Rumm</a>
 * 
 */
public interface IssueMessages extends Messages {

	/**
	 * @param aPropertyName
	 *            The property's name
	 * @return The localized message
	 */
	String mandatoryTextIsEmpty(String aPropertyName);

	/**
	 * @param aPropertyName
	 *            The property's name
	 * @param aPropertyValue
	 *            The invalid string
	 * @param aLength
	 *            The actual length of the invalid string
	 * @param aMinLength
	 *            The minimum valid length of the string
	 * @return The localized message
	 */
	String stringLengthTooShort(String aPropertyName, String aPropertyValue,
			int aActualLength, int aMinLength);

	/**
	 * @param aPropertyName
	 *            The property's name
	 * @param aPropertyValue
	 *            The invalid string
	 * @param aLength
	 *            The actual length of the invalid string
	 * @param aMaxLength
	 *            The maximum valid length of the string
	 * @return The localized message
	 */
	String stringLengthTooLong(String aPropertyName, String aPropertyValue,
			int aActualLength, int aMaxLength);

	/**
	 * @param aPropertyName
	 *            The property's name
	 * @return The localized message
	 */
	String stringDoesNotMatchPattern(String aPropertyName);

	/**
	 * @param aPropertyName
	 *            The property's name
	 * @return The localized message
	 */
	String stringDoesNotMatchEmailAddressPattern(String aPropertyName);

	/**
	 * @param aPropertyName
	 *            The property's name
	 * @return The localized message
	 */
	String stringDoesNotMatchDatePattern(String aPropertyName);

	/**
	 * @param aPropertyName
	 *            The property name
	 * @param aPropertyNameEqual
	 *            The name of the property whose data must be equal
	 * @return
	 */
	String stringNotEqual(String aPropertyName, String aPropertyNameEqual);

	/**
	 * @param aPropertyName
	 *            The property's name
	 * @return The localized message
	 */
	String integerWrongSyntax(String aPropertyName);

	/**
	 * @param aPropertyName
	 *            The property's name
	 * @param aValue
	 *            The property's value
	 * @return
	 */
	String integerTooSmall(String aPropertyName, int aValue);

	/**
	 * @param aPropertyName
	 *            The property's name
	 * @param aValue
	 *            The property's value
	 * @return
	 */
	String integerTooBig(String aPropertyName, int aValue);
}
